dynamics_maps Module



Contents


Variables

Type Visibility Attributes Name Initial
integer(kind=int32), public, parameter :: POINCARE_ONE_SIDED_FROM_BACK = 2

A one-sided Poincare section will be computed where the algorithm only retains intersection points where the trajectory approaches the sectioning plane from the back (the side opposite the plane normal).

integer(kind=int32), public, parameter :: POINCARE_ONE_SIDED_FROM_FRONT = 1

A one-sided Poincare section will be computed where the algorithm only retains intersection points where the trajectory approaches the sectioning plane from the front (the side of the plane normal).

integer(kind=int32), public, parameter :: POINCARE_TWO_SIDED = 0

A two-sided Poincare section will be computed. In this section, the algorithm does not care whether the trajectory approaches the sectioning plane from the front or the back of the plane (defined by the plane normal). It simply returns any intersection point.


Functions

public pure function poincare_map(x, y, z, pln, side) result(rst)

Generates a Poincare map by determining the intersections of the supplied trajectory with the specified plane.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), dimension(:) :: x

The x-coordinates of the trajectory.

real(kind=real64), intent(in), dimension(size(x)) :: y

The y-coordinates of the trajectory.

real(kind=real64), intent(in), dimension(size(x)) :: z

The z-coordinates of the trajectory.

class(plane), intent(in), optional :: pln

The plane to intersect. If not supplied, the x-y plane is utilized where z = 0.

integer(kind=int32), intent(in), optional :: side

An integer flag denoting which approach to use when computing the section. The acceptable values are as follows.

Read more…

Return Value real(kind=real64), allocatable, dimension(:,:)

An N-by-3 matrix containing the x, y, and z coordinates of each of the N intersection points in the first, second, and third columns respectively.